package servidor.controladorsistema.ip;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import javax.transaction.Transaction;

public class IPDAOResultadoPartidaJPA implements IPDAOResultadoPartida {

	@Override
	public List<IPResultadoPartida> listarPorPerfil(IPPerfil perfil) {
		EntityManager em = IPJPAUtil.getEntityManager();
		Query q = em.createQuery("select p from "
				+ "IPResultadoPartida p where p.identificador = " + perfil.getId());
		@SuppressWarnings("unchecked")
		List<IPResultadoPartida> lista = q.getResultList();
		return lista;
	}
	
	@Override
	public List<IPResultadoPartida> listarPorIdentificadorPerfil(String identificador) {
		EntityManager em = IPJPAUtil.getEntityManager();
		Query q = em.createQuery("select p from "
				+ "IPResultadoPartida p where p.identificador = '" + identificador + "'");
		@SuppressWarnings("unchecked")
		List<IPResultadoPartida> lista = q.getResultList();
		return lista;
	}

	@Override
	public void atribuirPontuacao(String identificador,Integer pontuacao, IPSituacaoResultadoPartida situacao) {
		EntityManager em = IPJPAUtil.getEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		IPResultadoPartida resultadoPartida = new IPResultadoPartida();
		resultadoPartida.setIdentificador(identificador);
		resultadoPartida.setValor(pontuacao);
		resultadoPartida.setSituacao(situacao);
		em.persist(resultadoPartida);
		tx.commit();
	}

}
